package prog1.hausaufgabe2.groessterGemeinsamerTeiler;
import java.io.*;   //für die tastatureingabe 

/**
 * @author moritz.platt@campus.tu-berlin.de
 */
public class main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String[] teilerS;   //array deklarieren
        teilerS = new String[2];    //platz zuweisen
        
        int[] teilerInt;    //array deklarieren
        teilerInt = new int[2];     //platz zuweisen
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   //reader für tastatureingabe initialisieren
        
        try {   //  Tatstaureiungaben müssen per anforderung in try/catch gewrapped sein 
            System.out.println("Teiler 1:");
            teilerS[0] = br.readLine();
            System.out.println("Teiler 2:");
            teilerS[1] = br.readLine();
        } catch(IOException ex) {}
        
        teilerInt[0] = Integer.parseInt(teilerS[0],10);     // eingaben für mathematische modifikation in int wandeln
        teilerInt[1] = Integer.parseInt(teilerS[1],10);
        
        int ggT = findeGroesstenGemeinsamenTeiler(teilerInt);
        System.out.println("Größter gemeinsamer Teiler: " + ggT); 
    }
    
    /**
     * Funktion zur ermittlung des größten gemeinsamen teilers nach Euklid
     * http://de.wikipedia.org/wiki/Euklidischer_Algorithmus
     * 
     * @param teiler Array der Zahlen für die der ggT zu ermitteln ist
     */
    public static int findeGroesstenGemeinsamenTeiler(int[] teiler){   
        if (teiler[0] == 0) {
            return teiler[1];
        } else {
            while (teiler[1] != 0) {
                if (teiler[0] > teiler[1]) {
                    teiler[0] = teiler[0] - teiler[1];
                } else {
                    teiler[1] = teiler[1] - teiler[0];
                }
            }
            return teiler[0];
        }
    }
}
